<script setup>
	import {
		onLaunch,
		onLoad,
		onShow,
		onReady,
		onHide,
		onUnload,
		onError,
		onShareAppMessage,
		onReachBottom,
		onPullDownRefresh,
		onBackPress
	} from "@dcloudio/uni-app";
	import {
		ref,
		reactive,
		onMounted
	} from "vue";
	const CustomNavbarRef = ref(null);
	const CustomNavbarHeight = ref(0);
	/**
	 * @description vue生命周期钩子
	 */
	onMounted(() => {
		CustomNavbarRef.value.setCustomNavbarHeight();
		CustomNavbarHeight.value = CustomNavbarRef.value.CustomNavbarHeight;
	});

	// 国际化
	import {
		t,
		Language,
		changeLang
	} from "@/i18n/index.js";

	// 接口
	import {
		myRequest,
		myRequestAsync
	} from "@/service/request.js";
	import {
		xxxAPI
	} from "@/service/api/common.js";

	// 组件

	// 资源
	import {
		goSwitchTab,
		goNavigateTo,
		goReLaunchTo,
		goReLaunch
	} from "@/utils/goPage.js";

	/**
	 * @description store数据
	 */
	import {
		useUserStore
	} from "@/store/modules/user.js";
	const userStore = useUserStore();

	/**
	 * @description 变量
	 */
	const data = reactive({
		num: 1,
		str: "str",
		bool: true,
		user: {
			name: "张三",
			age: 20
		}
	});

	/**
	 * @description uniapp生命周期钩子
	 */
	onLaunch(() => {
		console.log("小程序初始化完成时（全局只触发一次）");
	});
	onLoad(() => {
		console.log("页面加载时（仅触发一次）");
	});
	onShow(() => {
		console.log("页面显示 / 切入前台时（每次页面可见时触发，包括从后台切回、跳转返回等）");
		console.log("国际化: ", t("LanguageObj.common.goBackName"));
		uni.showLoading({
			title: "加载中...",
			mask: true
		});
		myRequest("/api-store/gbSea/prices", "get", {
			shipType: "Direct;Tranship",
			start: 0,
			limit: 10
		}, {
			// header: {
			// 	"Content-Type": "application/json",
			// 	"Content-Type": "multipart/form-data",
			// }
		}).then((res) => {
			// console.log(res, "API res");
		}).catch((e) => {
			// console.log(e, "API e");
		}).finally(() => {
			uni.hideLoading();
		});
	});
	onReady(() => {
		console.log("页面初次渲染完成时（仅触发一次）");
	});
	onHide(() => {
		console.log("页面隐藏 / 切入后台时（如跳转至其他页面、切换小程序到后台）");
	});
	onUnload(() => {
		console.log("页面卸载时（如关闭当前页面、跳转至其他页面且不保留当前页）");
	});
	onError((e) => {
		console.log("小程序发生脚本错误或 API 调用失败时", e);
	});

	/**
	 * @description 用户点击右上角 “转发” 或页面中调用 wx.showShareMenu() 后触发（小程序）
	 */
	onShareAppMessage(() => {
		return {
			title: "test",
			path: "/pagesSub/demo/test/test",
		};
	});

	/**
	 * @description 页面滚动到距底部一定距离时（需在 pages.json的path下 或页面配置中设置 onReachBottomDistance 触底距离）
	 */
	onReachBottom(() => {
		console.log("上拉加载！！！");
	});

	/**
	 * @description 用户下拉页面触发下拉刷新时（需在 pages.json的path下 或页面配置中开启 enablePullDownRefresh）
	 */
	onPullDownRefresh(() => {
		// 停止刷新动画
		uni.stopPullDownRefresh();
	});

	/**
	 * @description 用户点击物理返回键或导航栏返回按钮时（H5 或部分小程序支持）
	 */
	onBackPress((e) => {
		// backbutton 是点击物理按键返回，navigateBack是uniapp中的返回（比如左上角的返回箭头）
		if (e.from === "backbutton") {
			// 返回 true 可阻止默认返回行为
			// return true; // 一级页面阻止返回，其它不阻止
		}
	});
</script>

<template>
	<!-- 自定义导航栏（必须放在页面最顶部） -->
	<CustomNavbar ref="CustomNavbarRef" :backIconShow="true" :title="'xxx'"></CustomNavbar>

	<view class="xxx-container" :style="'padding-top: ' + CustomNavbarHeight + 'px'">
		<text class="text1">num: {{data.num}}</text>
		<text class="text2">name: {{data.user.name}}</text>
		<view @click="goSwitchTab('/pages/table/index/index')">跳转首页</view>
		<view class="text1">国际化: {{$t("LanguageObj.common.goBackName")}}</view>
		<view @click="changeLang('zh-CN')">CN</view>
		<view @click="changeLang('en')">EN</view>
	</view>
</template>

<style lang="scss" scoped>
	@import "./xxx.scss";
</style>